﻿#pragma once
#include <unordered_map>
#include <wrl/client.h>
#include "../../../Common/D3DUtil.h"
#include "../../../Common/ShaderAndLayoutManager.h"

class Dx2ShaderAndLayoutManager :public ShaderAndLayoutManager
{
public:
    virtual  void BuildShaderAndLayout() override;

public:
    const std::vector<D3D12_INPUT_ELEMENT_DESC>& GetInputLayout() const;
    const std::vector<D3D12_INPUT_ELEMENT_DESC>& GetTreeInputLayout() const;
    const std::vector<D3D12_INPUT_ELEMENT_DESC>& GetTessellationLayout() const;
    
private:
    std::vector<D3D12_INPUT_ELEMENT_DESC> mInputLayout;
    std::vector<D3D12_INPUT_ELEMENT_DESC> mTreeSpriteInputLayout;
    std::vector<D3D12_INPUT_ELEMENT_DESC> mTessellationInputLayout;
};
